Import and Filter TOC LEEF-1

Some preliminary setup

Show the code
library(LEEF.analysis)
library(LEEF.measurement.toc)
library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
Show the code
library(tidyr)
library(ggplot2)
library(ggExtra)
options(dplyr.summarise.inform = FALSE)
Show the code
root_folder <- params$root_folder

db <- params$db
options(RRDdb = db)

pre_processor_toc(file.path(root_folder, "0.raw.data"), file.path(root_folder, "1.pre-processed.data"))
[1] "Log file set to /Volumes/LEEF/0.TOC/LEEF-1//1.pre-processed.data/toc/toc.log"

########################################################

Processing toc
Warning in file.copy(file.path(input, "..", "00.general.parameter", "."), :
problem copying /Volumes/LEEF/0.TOC/LEEF-1//0.raw.data/../00.general.parameter/.
to /Volumes/LEEF/0.TOC/LEEF-1//1.pre-processed.data/toc/.: No such file or
directory
done

########################################################
Show the code
extractor_toc(file.path(root_folder, "1.pre-processed.data"), file.path(root_folder, "2.extracted.data"))
Extracting toc
[1] "Log file set to /Volumes/LEEF/0.TOC/LEEF-1//2.extracted.data/toc/toc.log"

########################################################
Extracting toc
Processing LEEF_21_09_20 und 21_09_22  C.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_09_24 1-8.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_09_24 und 21_09_27 B.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_09_27 restB.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_09_29t.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_01.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_04 S22 - S30.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_04 und 21_10_06A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_06.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_08.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_11.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_13.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_15 s8 - 26.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_15.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_18.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_20.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_22.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_25.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_27.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_10_29 und 21_11_01.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_11_03 und 21_11_05.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_11_08 und 21_11_10.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_11_12.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_11_17 und 21_11_19.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_11_22 und 21_11_24.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_11_26 und 21_11_29.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_12_01 und 21_12_03A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_12_03B.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_12_06 und 21_12_08 1-8A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_12_08B.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_12_10 und 21_12_13.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_12_15 und 21_12_17.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_12_20 und 21_12_22.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_12_24.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_12_27 und 21_12_29.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_12_31 und 22_01_03.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_21_15_10 rest 2.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_01_05 und 22_01_07A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_01_10 und 22_01_12.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_01_14 und 22_01_17.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_01_19 und 22_01_21A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_01_19 und 22_01_21B.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_01_24 und 22_01_26.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_01_28 und 22_01_31A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_02_02 und 22_02_04.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_02_07B.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_02_07D.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_02_09 und 22_02_11A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_02_14 und 22_02_16A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_02_16B.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_02_18A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_02_18B.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_02_21A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_02_23A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_02_25.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_02_28.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_02.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_04.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_07.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_09.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_11.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_14.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_16.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_18.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_21.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_23.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_25.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_28.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_30A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_03_30B.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_01.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_04A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_04B.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_06.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_08.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_11.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_13.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_15A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_15B.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_18.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_20.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_22.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_25.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_27.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_04_29.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_05_02.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_05_04.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_05_06.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_05_09.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_05_11.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_05_13.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_05_16.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_05_18.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_05_20.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_05_23A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_05_25A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_05_27A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_05_30A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_06_01A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_06_03A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_06_06A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_06_08A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_06_10B.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_06_13A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_06_15A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_06_17A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_06_20A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_06_20B.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_06_22A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_06_27A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_06_29B.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
Processing LEEF_22_07_04A.txt ...
  |- Splitting file ...
  |- Processing metadata ...
  |- Processing parameter ...
  |- Processing actual data ...
  |- Saving files ...
done

########################################################

Read parameter and data files and determine CV and number extra measurements

Show the code
fns <- sapply(
  list.files(file.path(root_folder, "2.extracted.data", "toc"), "\\.data\\.", full.names = FALSE),
  function(fn){
    x <- strsplit(fn, "\\.")[[1]][[1]]
  }
)

data <- lapply(
    fns,
    function(fn){
      p <- read.csv(file.path(root_folder, "2.extracted.data", "toc", paste(fn, "parameter", "csv", sep = ".")))
      d <- read.csv(file.path(root_folder, "2.extracted.data", "toc", paste(fn, "data", "csv", sep = ".")))
      return(list(
        data = d, 
        parameter = p, 
        samples = max(p$samples), 
        extra_samples = max(p$extra_samples), 
        max_cv = max(p$max_cv)
      )
      )
    }
)

sapply(data, "[[", "samples") |> plot(ylab = "samples") |> print()

NULL
Show the code
sapply(data, "[[", "extra_samples") |> plot(ylab = "extra_samples") |> print()

NULL
Show the code
sapply(data, "[[", "max_cv") |> plot(ylab = "max_cv") |> print()

NULL
Show the code
samples <- sapply(data, "[[", "samples") |> min()
extra_samples <- sapply(data, "[[", "extra_samples") |> min()
max_cv <- sapply(data, "[[", "max_cv") |> max()

no_samples <- samples + extra_samples
max_col <- (2 + 3 + no_samples * 2) + 1

As the number of additional samples as well as the cv were different for some samples, we have to re-calculate conc and cv. The values which will be used are

  • samples: 2
  • extra_samples: 1
  • max_cv: 3

In case there are more extra samples, the last ones were be discarded.

Read data and adjust different number of samples and cv

Show the code
toc <- lapply(
  data,
  function(x){
    result <- x$data[,1:max_col]
    return(result)
  }
) |> do.call(what = rbind)
toc$id <- 1:nrow(toc)

Remove missing inj_type

We have the following measurements files with measurements without inj_type or `NULL.

Show the code
toc %>%
  filter(inj_type == "") %>%
  group_by(filename) %>%
  summarise(n = n()) %>% 
  collect() %>%
  knitr::kable()
filename n
LEEF_21_09_24 1-8 208
LEEF_22_01_19 und 22_01_21A 196
LEEF_22_02_09 und 22_02_11A 3
LEEF_22_02_14 und 22_02_16A 3
LEEF_22_02_16B 3
LEEF_22_04_04A 54
LEEF_22_04_15A 58
LEEF_22_06_03A 6
LEEF_22_06_06A 6
LEEF_22_06_08A 6
LEEF_22_06_10B 6
LEEF_22_06_13A 6
LEEF_22_06_15A 6
LEEF_22_06_20A 78

These can be filtered out

Show the code
before <- nrow(toc)
toc <- toc %>%
  filter(inj_type != "")
after <- nrow(toc)
cat("Before : ", before, "\n")
Before :  17400 
Show the code
cat("Removed: ", before - after, "\n")
Removed:  639 
Show the code
cat("After  : ", after, "\n")
After  :  16761 

Remove Rows where conc == 0

Here it gets tricky. There are cases, where either conc_1 == 0 or conc_2 == 0, but conc_3 != 0, which results in a valid measurement, i.e. conc != 0. I would suggest to remove all rows, in which conc == 0

Show the code
toc %>%
  filter(conc == 0) %>%
  group_by(filename) %>%
  summarise(n = n()) %>% 
  collect() %>%
  knitr::kable()
filename n
LEEF_21_09_20 und 21_09_22 C 4
LEEF_21_09_24 1-8 12
LEEF_21_09_24 und 21_09_27 B 39
LEEF_21_09_27 restB 8
LEEF_21_09_29t 8
LEEF_21_10_01 8
LEEF_21_10_04 S22 - S30 6
LEEF_21_10_04 und 21_10_06A 160
LEEF_21_10_06 8
LEEF_21_10_08 8
LEEF_21_10_11 8
LEEF_21_10_13 4
LEEF_21_10_15 4
LEEF_21_10_15 s8 - 26 22
LEEF_21_10_18 4
LEEF_21_10_20 4
LEEF_21_10_22 4
LEEF_21_10_25 4
LEEF_21_10_27 4
LEEF_21_10_29 und 21_11_01 6
LEEF_21_11_03 und 21_11_05 6
LEEF_21_11_08 und 21_11_10 6
LEEF_21_11_12 94
LEEF_21_11_17 und 21_11_19 6
LEEF_21_11_22 und 21_11_24 6
LEEF_21_11_26 und 21_11_29 7
LEEF_21_12_01 und 21_12_03A 113
LEEF_21_12_03B 4
LEEF_21_12_06 und 21_12_08 1-8A 85
LEEF_21_12_08B 1
LEEF_21_12_10 und 21_12_13 6
LEEF_21_12_15 und 21_12_17 5
LEEF_21_12_20 und 21_12_22 6
LEEF_21_12_24 4
LEEF_21_12_27 und 21_12_29 4
LEEF_21_12_31 und 22_01_03 5
LEEF_21_15_10 rest 2 2
LEEF_22_01_05 und 22_01_07A 6
LEEF_22_01_10 und 22_01_12 6
LEEF_22_01_14 und 22_01_17 6
LEEF_22_01_19 und 22_01_21A 15
LEEF_22_01_19 und 22_01_21B 6
LEEF_22_01_24 und 22_01_26 6
LEEF_22_01_28 und 22_01_31A 4
LEEF_22_02_02 und 22_02_04 4
LEEF_22_02_07B 4
LEEF_22_02_07D 2
LEEF_22_02_09 und 22_02_11A 2
LEEF_22_02_14 und 22_02_16A 76
LEEF_22_02_18A 4
LEEF_22_02_18B 3
LEEF_22_02_21A 3
LEEF_22_02_23A 6
LEEF_22_02_25 3
LEEF_22_02_28 6
LEEF_22_03_02 4
LEEF_22_03_04 1
LEEF_22_03_07 3
LEEF_22_03_09 2
LEEF_22_03_11 2
LEEF_22_03_14 5
LEEF_22_03_16 5
LEEF_22_03_18 3
LEEF_22_03_21 4
LEEF_22_03_23 5
LEEF_22_03_25 4
LEEF_22_03_28 3
LEEF_22_03_30A 3
LEEF_22_03_30B 2
LEEF_22_04_01 4
LEEF_22_04_04A 61
LEEF_22_04_04B 2
LEEF_22_04_06 5
LEEF_22_04_08 5
LEEF_22_04_11 4
LEEF_22_04_13 4
LEEF_22_04_15A 5
LEEF_22_04_15B 2
LEEF_22_04_18 4
LEEF_22_04_20 5
LEEF_22_04_22 6
LEEF_22_04_25 5
LEEF_22_04_27 5
LEEF_22_04_29 5
LEEF_22_05_02 5
LEEF_22_05_04 3
LEEF_22_05_06 5
LEEF_22_05_09 5
LEEF_22_05_11 5
LEEF_22_05_13 7
LEEF_22_05_16 4
LEEF_22_05_18 7
LEEF_22_05_20 5
LEEF_22_05_23A 7
LEEF_22_05_25A 7
LEEF_22_05_27A 5
LEEF_22_05_30A 5
LEEF_22_06_01A 5
LEEF_22_06_03A 3
LEEF_22_06_06A 2
LEEF_22_06_08A 2
LEEF_22_06_10B 3
LEEF_22_06_13A 2
LEEF_22_06_15A 5
LEEF_22_06_17A 2
LEEF_22_06_20A 10
LEEF_22_06_20B 2
LEEF_22_06_22A 4
LEEF_22_06_27A 3
LEEF_22_06_29B 3
LEEF_22_07_04A 5
Show the code
before <- nrow(toc)
toc <- toc %>%
  filter(conc > 0)
after <- nrow(toc)
cat("Before : ", before, "\n")
Before :  16761 
Show the code
cat("Removed: ", before - after, "\n")
Removed:  1239 
Show the code
cat("After  : ", after, "\n")
After  :  15522 

Check timestamp / id / Filename

In each file, there should be a maximum of 2 timestamps, except of files which contain two timestamps.

Show the code
toc %>%
  select(filename, timestamp, identification, inj_type) %>%
  filter(identification != "H2O" & identification != "2.5mg/lIC") %>%
  group_by(filename, timestamp) %>%
  summarise(timestamps_count = n()) %>%
  group_by(filename) %>%
  summarise(number_of_timestamps = n()) %>%
  arrange(desc(number_of_timestamps)) %>%
  knitr::kable()
filename number_of_timestamps
LEEF_21_09_20 und 21_09_22 C 2
LEEF_21_09_24 und 21_09_27 B 2
LEEF_21_10_04 und 21_10_06A 2
LEEF_21_10_29 und 21_11_01 2
LEEF_21_11_03 und 21_11_05 2
LEEF_21_11_08 und 21_11_10 2
LEEF_21_11_12 2
LEEF_21_11_17 und 21_11_19 2
LEEF_21_11_22 und 21_11_24 2
LEEF_21_11_26 und 21_11_29 2
LEEF_21_12_01 und 21_12_03A 2
LEEF_21_12_06 und 21_12_08 1-8A 2
LEEF_21_12_10 und 21_12_13 2
LEEF_21_12_15 und 21_12_17 2
LEEF_21_12_20 und 21_12_22 2
LEEF_21_12_27 und 21_12_29 2
LEEF_21_12_31 und 22_01_03 2
LEEF_22_01_05 und 22_01_07A 2
LEEF_22_01_10 und 22_01_12 2
LEEF_22_01_14 und 22_01_17 2
LEEF_22_01_19 und 22_01_21B 2
LEEF_22_01_24 und 22_01_26 2
LEEF_22_01_28 und 22_01_31A 2
LEEF_22_02_02 und 22_02_04 2
LEEF_22_02_09 und 22_02_11A 2
LEEF_22_02_14 und 22_02_16A 2
LEEF_21_09_24 1-8 1
LEEF_21_09_27 restB 1
LEEF_21_09_29t 1
LEEF_21_10_01 1
LEEF_21_10_04 S22 - S30 1
LEEF_21_10_06 1
LEEF_21_10_08 1
LEEF_21_10_11 1
LEEF_21_10_13 1
LEEF_21_10_15 1
LEEF_21_10_15 s8 - 26 1
LEEF_21_10_18 1
LEEF_21_10_20 1
LEEF_21_10_22 1
LEEF_21_10_25 1
LEEF_21_10_27 1
LEEF_21_12_03B 1
LEEF_21_12_08B 1
LEEF_21_12_24 1
LEEF_21_15_10 rest 2 1
LEEF_22_01_19 und 22_01_21A 1
LEEF_22_02_07B 1
LEEF_22_02_07D 1
LEEF_22_02_16B 1
LEEF_22_02_18A 1
LEEF_22_02_18B 1
LEEF_22_02_21A 1
LEEF_22_02_23A 1
LEEF_22_02_25 1
LEEF_22_02_28 1
LEEF_22_03_02 1
LEEF_22_03_04 1
LEEF_22_03_07 1
LEEF_22_03_09 1
LEEF_22_03_11 1
LEEF_22_03_14 1
LEEF_22_03_16 1
LEEF_22_03_18 1
LEEF_22_03_21 1
LEEF_22_03_23 1
LEEF_22_03_25 1
LEEF_22_03_28 1
LEEF_22_03_30A 1
LEEF_22_03_30B 1
LEEF_22_04_01 1
LEEF_22_04_04A 1
LEEF_22_04_04B 1
LEEF_22_04_06 1
LEEF_22_04_08 1
LEEF_22_04_11 1
LEEF_22_04_13 1
LEEF_22_04_15A 1
LEEF_22_04_15B 1
LEEF_22_04_18 1
LEEF_22_04_20 1
LEEF_22_04_22 1
LEEF_22_04_25 1
LEEF_22_04_27 1
LEEF_22_04_29 1
LEEF_22_05_02 1
LEEF_22_05_04 1
LEEF_22_05_06 1
LEEF_22_05_09 1
LEEF_22_05_11 1
LEEF_22_05_13 1
LEEF_22_05_16 1
LEEF_22_05_18 1
LEEF_22_05_20 1
LEEF_22_05_23A 1
LEEF_22_05_25A 1
LEEF_22_05_27A 1
LEEF_22_05_30A 1
LEEF_22_06_01A 1
LEEF_22_06_03A 1
LEEF_22_06_06A 1
LEEF_22_06_08A 1
LEEF_22_06_10B 1
LEEF_22_06_13A 1
LEEF_22_06_15A 1
LEEF_22_06_17A 1
LEEF_22_06_20A 1
LEEF_22_06_20B 1
LEEF_22_06_22A 1
LEEF_22_06_27A 1
LEEF_22_06_29B 1
LEEF_22_07_04A 1

Fixed two typos in the raw data. Now, it looks OK for me.

  • LEEF_21_11_12: “Analysis Name”,“LEEF_21_11_12 und 21_15_10A.adb”
  • LEEF_22_01_19 und 22_01_21A: All analysis for 22_01_21 are not valid

Set unrealistic small TC values to NA

Here only samples from bottles were included in the filtering rules.

Show the code
tc <- toc %>%
  filter(inj_type == "TC") %>%
  filter(bottle != "H2O") %>%
  filter(!is.na(bottle))
tc <- data.frame(conc_TC = c(tc$conc_1, tc$conc_2, tc$conc_3))
tc %>% ggplot(aes(x=conc_TC)) + 
  stat_density(bw = 0.1, na.rm = TRUE) +
  geom_vline(xintercept = 5, col = "red")

One can see for TC two peaks clearly separated. The values smaller than 5 will be set to NA as they are unrealistically low and can be linked to measuring errors in the machine.

Plot the previous plot zoomed in to conc <= 10 for each bottle

conc_1

Show the code
toc %>%
  filter(inj_type == "TC") %>%
  filter(bottle != "H2O") %>%
  filter(!is.na(bottle)) %>% 
  ggplot(aes(x=conc_1)) + 
  geom_vline(xintercept = 5, col = "red") +
  stat_density(bw = 0.1, na.rm = TRUE) +
  facet_wrap(~bottle, ncol = 1, scales = "free_y")

conc_2

Show the code
toc %>%
  filter(inj_type == "TC") %>%
  filter(bottle != "H2O") %>%
  filter(!is.na(bottle)) %>% 
  ggplot(aes(x=conc_2)) + 
  geom_vline(xintercept = 5, col = "red") +
  stat_density(bw = 0.1, na.rm = TRUE) +
  facet_wrap(~bottle, ncol = 1, scales = "free_y")

conc_3

Show the code
toc %>%
  filter(inj_type == "TC") %>%
  filter(bottle != "H2O") %>%
  filter(!is.na(bottle)) %>% 
  ggplot(aes(x=conc_3)) + 
  geom_vline(xintercept = 5, col = "red") +
  stat_density(bw = 0.1, na.rm = TRUE) +
  facet_wrap(~bottle, ncol = 1, scales = "free_y")

Show the code
tc <- (toc$inj_type == "TC") & (toc$bottle != "H2O") & (!is.na(toc$bottle))
toc$conc_1[tc & sapply(toc$conc_1 < 5, isTRUE)] <- NA
toc$conc_2[tc & sapply(toc$conc_2 < 5, isTRUE)] <- NA
toc$conc_3[tc & sapply(toc$conc_3 < 5, isTRUE)] <- NA

Which are now gone

Show the code
tc <- toc %>%
  filter(inj_type == "TC") %>%
  filter(bottle != "H2O") %>%
  filter(!is.na(bottle))
tc <- data.frame(conc_TC = c(tc$conc_1, tc$conc_2, tc$conc_3))
tc %>% ggplot(aes(x=conc_TC)) + 
  stat_density(bw = 0.1, na.rm = TRUE) +
  geom_vline(xintercept = 5, col = "red")

Set unrealistic small IC values to NA

Here only samples from bottles were included in the filtering rules.

Show the code
tc <- toc %>%
  filter(inj_type == "IC") %>%
  filter(bottle != "H2O") %>%
  filter(!is.na(bottle))
tc <- data.frame(conc_IC = c(tc$conc_1, tc$conc_2, tc$conc_3))
tc %>% ggplot(aes(x=conc_IC)) + 
  geom_vline(xintercept = 0.3, col = "red") +
  stat_density(bw = 0.001, na.rm = TRUE)

One can see for TC two peaks clearly separated. The values smaller than 0.3 will be set to NA as they are unrealistically low and can be linked to measuring errors in the machine.

Plot the previous plot zoomed in to conc <= 3 for each bottle

conc_1

Show the code
toc %>%
  filter(inj_type == "IC") %>%
  filter(bottle != "H2O") %>%
  filter(!is.na(bottle)) %>% 
  ggplot(aes(x=conc_1)) + 
  geom_vline(xintercept = 0.3, col = "red") +
  stat_density(bw = 0.01, na.rm = TRUE) +
  facet_wrap(~bottle, ncol = 1, scales = "free_y")

conc_2

Show the code
toc %>%
  filter(inj_type == "IC") %>%
  filter(bottle != "H2O") %>%
  filter(!is.na(bottle)) %>% 
  ggplot(aes(x=conc_2)) + 
  geom_vline(xintercept = 0.3, col = "red") +
  stat_density(bw = 0.01, na.rm = TRUE) +
  facet_wrap(~bottle, ncol = 1, scales = "free_y")

conc_3

Show the code
toc %>%
  filter(inj_type == "IC") %>%
  filter(bottle != "H2O") %>%
  filter(!is.na(bottle)) %>% 
  ggplot(aes(x=conc_3)) + 
  geom_vline(xintercept = 0.3, col = "red") +
  stat_density(bw = 0.01, na.rm = TRUE) +
  facet_wrap(~bottle, ncol = 1, scales = "free_y")

Show the code
tc <- (toc$inj_type == "IC") & (toc$bottle != "H2O") & (!is.na(toc$bottle))
toc$conc_1[tc & sapply(toc$conc_1 < 0.3, isTRUE)] <- NA
toc$conc_2[tc & sapply(toc$conc_2 < 0.3, isTRUE)] <- NA
toc$conc_3[tc & sapply(toc$conc_3 < 0.3, isTRUE)] <- NA

Which are now gone

Show the code
tc <- toc %>%
  filter(inj_type == "IC") %>%
  filter(bottle != "H2O") %>%
  filter(!is.na(bottle))
tc <- data.frame(conc_IC = c(tc$conc_1, tc$conc_2, tc$conc_3))
tc %>% ggplot(aes(x=conc_IC)) + 
  geom_vline(xintercept = 0.3, col = "red") +
  stat_density(bw = 0.001, na.rm = TRUE)

Recalculate conc and TOC

As the number of additional samples as well as the cv were different for some samples, we have to re-calculate conc and cv. The values which will be used are - samples: 2 - extra_samples: 1 - max_cv: 3 In case there are more extra samples, the last ones were be discarded.

In addition, we have calculate the TOC, which is TOC = TC - IC

Calculate conc

Show the code
cvf <- function(x, y){
  sapply(
    1:length(x),
    function(i){
      sd(c(x[i], y[i])) / mean(c(x[i], y[i])) * 100
    }
  )
}


toc$cv_12 <- cvf(toc$conc_1, toc$conc_2)
toc$cv_13 <- cvf(toc$conc_1, toc$conc_3)
toc$cv_23 <- cvf(toc$conc_2, toc$conc_3)

toc$conc_12 <- rowMeans(toc[,c("conc_1", "conc_2")])
toc$conc_13 <- rowMeans(toc[,c("conc_1", "conc_3")])
toc$conc_23 <- rowMeans(toc[,c("conc_2", "conc_3")])



toc$conc <- apply(
  toc,
  1,
  function(x){
    if (isTRUE(as.numeric(x[["cv_12"]]) < max_cv)) {
      return(mean(as.numeric(x[["conc_1"]]), as.numeric(x[["conc_2"]])))
    } else {
      sel <- suppressWarnings( which(x == min(as.numeric(x[["cv_12"]]), as.numeric(x[["cv_13"]]), as.numeric(x[["cv_23"]]), na.rm = TRUE)) )
      if (length(sel) == 0) {return(NA)}
      if (sel == 1) {return(mean(as.numeric(x[["conc_1"]]), as.numeric(x[["conc_2"]])))}
      if (sel == 2) {return(mean(as.numeric(x[["conc_1"]]), as.numeric(x[["conc_3"]])))}
      if (sel == 3) {return(mean(as.numeric(x[["conc_2"]]), as.numeric(x[["conc_3"]])))} else {return(NA)}
    }
  }
)

Calculate TOC

Show the code
i <- which(toc$inj_type == "TOC")
toc$conc[i] <- NA

TOC_calc <- toc %>% 
  mutate(an_id = paste(filename, position)) %>%
  pivot_wider(id_cols = an_id, names_from = inj_type, values_from = conc) %>%
  mutate(TOC_calc = TC - IC) %>%
  select(an_id, TOC_calc) %>%
  mutate(an_id = paste(an_id, "TOC"))

toc <- toc %>% 
  mutate(an_id = paste(filename, position, inj_type)) %>%
  left_join(TOC_calc, by = "an_id") %>%
  mutate( conc = ifelse(inj_type == "TOC", TOC_calc, conc) ) %>%
  select( -TOC_calc, -an_id)

Plot after re-calculation of the TOC values (without H2O and other non-bottle samples)

Show the code
toc %>%   
  filter(bottle != "H2O") %>%
  filter(!is.na(bottle)) %>%
  ggplot(aes(x=conc)) + 
  stat_density(bw = 0.1, na.rm = TRUE) +
  facet_grid(rows = vars(inj_type), scales = "free_y")

Plot the measured concentreation per bottle of all samples

Show the code
toc %>%
  filter(bottle != "H2O") %>%
  filter(!is.na(bottle)) %>% 
  ggplot(aes(x=conc)) + 
  stat_density(bw = 0.1, na.rm = TRUE) +
  facet_grid(rows = vars(bottle), cols = vars(inj_type), scales = "free_y")

TC

Show the code
toc %>%
  filter(inj_type == "TC") %>%
  ggplot(aes(x=conc)) + 
  geom_vline(xintercept = 5, col = "red") +
  stat_density(bw = 0.1, na.rm = TRUE) +
  facet_wrap(~bottle, ncol = 1, scales = "free_y")

IC

Show the code
toc %>%
  filter(inj_type == "IC") %>%
  ggplot(aes(x=conc)) + 
  geom_vline(xintercept = 0.3, col = "red") +
  stat_density(bw = 0.01, na.rm = TRUE) +
  facet_wrap(~bottle, ncol = 1, scales = "free_y")

TOC

Show the code
toc %>%
  filter(inj_type == "TOC") %>%
  ggplot(aes(x=conc)) + 
  geom_vline(xintercept = 4.7, col = "red") +
  stat_density(bw = 0.1, na.rm = TRUE) +
  facet_wrap(~bottle, ncol = 1, scales = "free_y")

TN

Show the code
toc %>%
  filter(inj_type == "TN") %>%
  ggplot(aes(x=conc)) +
  stat_density(bw = 0.1, na.rm = TRUE) +
  facet_wrap(~bottle, ncol = 1, scales = "free_y")

Add to database

The toc is now added to the database

Show the code
add_to_and_overwrite_table_in_RRD(toc = toc, dbname = db)
[1] 0
Show the code
toc_original <- toc

toc$id <- 1:nrow(toc)

Plot after filtering

Now let’s look at the plots of the measurements per bottle per timestep

Show the code
if (params$LEEF == "LEEF_1") {
  p1 <- plot_tocs_per_bottle_per_timestamp(db = db, c("TC", "TOC"))
  p2 <- plot_tocs_per_bottle_per_timestamp(db = db, c("IC"))
  p3 <- plot_tocs_per_bottle_per_timestamp(db = db, c("TN"))
} else {
  p1 <- LEEF_2_plot_tocs_per_bottle_per_timestamp(db = db, c("TC", "TOC"))
  p2 <- LEEF_2_plot_tocs_per_bottle_per_timestamp(db = db, c("IC"))
  p3 <- LEEF_2_plot_tocs_per_bottle_per_timestamp(db = db, c("TN"))
}
Warning: Missing values are always removed in SQL aggregation functions.
Use `na.rm = TRUE` to silence this warning
This warning is displayed once every 8 hours.
Show the code
p1

Show the code
p2

Show the code
p3

Number of measurements per timestamp, bottle and inj_type

We have to look if there are any duplicate measurements.

Show the code
dupl <- toc %>%
  group_by(timestamp, bottle, inj_type) %>%
  filter(!is.na(bottle)) %>%
  summarise(fn_1 = min(filename), fn_2 = max(filename), count = n(), min_conc = min(conc), max_conc = max(conc)) %>%
  filter(count > 1 & count < 10) %>%  
  mutate(diff = max_conc - min_conc) %>%
  arrange(inj_type, diff)
dupl %>% 
  group_by(fn_1, fn_2, timestamp) %>%
  summarise() %>%
  arrange(timestamp) %>%
  knitr::kable()
fn_1 fn_2 timestamp
LEEF_21_09_24 1-8 LEEF_21_09_24 und 21_09_27 B 20210924
LEEF_21_09_24 und 21_09_27 B LEEF_21_09_27 restB 20210927
LEEF_21_10_04 S22 - S30 LEEF_21_10_04 und 21_10_06A 20211004
LEEF_21_10_04 und 21_10_06A LEEF_21_10_06 20211006
LEEF_21_10_01 LEEF_21_10_29 und 21_11_01 20211101
LEEF_21_10_15 s8 - 26 LEEF_21_11_12 20211115
LEEF_21_10_15 s8 - 26 LEEF_21_15_10 rest 2 20211115
LEEF_21_11_12 LEEF_21_15_10 rest 2 20211115
LEEF_21_12_01 und 21_12_03A LEEF_21_12_03B 20211203
LEEF_21_12_06 und 21_12_08 1-8A LEEF_21_12_08B 20211208
LEEF_22_01_19 und 22_01_21A LEEF_22_01_19 und 22_01_21B 20220119
LEEF_22_02_07B LEEF_22_02_07D 20220207
LEEF_22_02_14 und 22_02_16A LEEF_22_02_16B 20220216
LEEF_22_02_18A LEEF_22_02_18B 20220218
LEEF_22_03_30A LEEF_22_03_30B 20220330
LEEF_22_04_04A LEEF_22_04_04B 20220404
LEEF_22_06_20A LEEF_22_06_20B 20220620

And some plots of the duplicate concentration values only

Show the code
dat <- db_read_toc(db = db, duplicates = NULL) %>% 
  collect()
if (nrow(dat) > 0){
dat$id <- 1:nrow(dat)
ids <- dat %>% 
  filter(!is.na(bottle)) %>%
  group_by(timestamp, bottle, type) %>%
  summarize(min(id), max(id), n = n()) %>%
  filter(n > 1)
ids <- c(ids$`min(id)`, ids$`max(id)`) |>
  unique()
x <- dat %>% 
  filter(id %in% ids) %>%
  group_by(day, timestamp, bottle, type) %>%
  summarise(timestamp, bottle, type, mic = min(concentration), mac = max(concentration)) %>%
  mutate(mdiff = mac - mic)
}

TN Duplicates

Show the code
if (nrow(x) > 0){
  pl <- x %>%
    filter(type == "TN") %>%
    ggplot2::ggplot(ggplot2::aes(x = mic, y = mac, colour = type)) +
    ggplot2::geom_point() +
    ggplot2::xlab("Smaler concentration Value") +
    ggplot2::ylab("Larger concentration Value")
  
  ggMarginal(pl, type="histogram")
}
Warning: Removed 26 rows containing missing values (`geom_point()`).

TC Duplicates

Show the code
if (nrow(x) > 0){
  pl <- x %>%
    filter(type == "TC") %>%
    ggplot2::ggplot(ggplot2::aes(x = mic, y = mac, colour = type)) +
    ggplot2::geom_point() +
    ggplot2::xlab("Smaler concentration Value") +
    ggplot2::ylab("Larger concentration Value")
  
  ggMarginal(pl, type="histogram")
}
Warning: Removed 32 rows containing missing values (`geom_point()`).

IC Duplicates

Show the code
if (nrow(x) > 0){
  pl <- x %>%
    filter(type == "IC") %>%
    ggplot2::ggplot(ggplot2::aes(x = mic, y = mac, colour = type)) +
    ggplot2::geom_point() +
    ggplot2::xlab("Smaler concentration Value") +
    ggplot2::ylab("Larger concentration Value")
  
  ggMarginal(pl, type="histogram")
}
Warning: Removed 8 rows containing missing values (`geom_point()`).

TOC Duplicates

Show the code
if (nrow(x) > 0){
  pl <- x %>%
    filter(type == "TOC") %>%
    ggplot2::ggplot(ggplot2::aes(x = mic, y = mac, colour = type)) +
    ggplot2::geom_point() +
    ggplot2::xlab("Smaler concentration Value") +
    ggplot2::ylab("Larger concentration Value")
  
  ggMarginal(pl, type="histogram")
}
Warning: Removed 50 rows containing missing values (`geom_point()`).

Final diagnostic report

Show the code
try(
  report_diagnostic(
    db = params$db,  
    template = params$LEEF,
    suffix = "TOC_added", 
    format = "html"
  )
)


processing file: DiagnosticReport.Rmd
Error in parse_block(g[-1], g[1], params.src, markdown_mode) : 
  Duplicate chunk label 'setup', which has been used for the chunk:
library(LEEF.analysis)
library(LEEF.measurement.toc)
library(dplyr)
library(tidyr)
library(ggplot2)
library(ggExtra)
options(dplyr.summarise.inform = FALSE)